Computer users are demanding flexible and sophisticated techniques in hardware and software implementations. Complex, scalable and distributed products are the requisite ingredients for success in the marketplace. Manufacturers are answering the call by providing extensible and pluggable components. Component-based frameworks that enable applications to be "smeared" across networks at both the client and server level are required to make application development and deployment more flexible and dynamic. End users require application debuggers that allow them to create and adapt software applications quickly and easily in accordance with their requirements. This must be done within an industry that is sourced with a disparate line of operating systems and hardware platforms. Conventional application debuggers operate by gaining control of the application and obtaining information about the application's state using interfaces that are peculiar to the personality. However, with the arrival of multiple different operating systems, application debuggers must operate under a new initiative which permits the operating system to be stripped of its personality. These personalities--which contain information on how to interact with the user and run applications specific to the operating system--will be offered on a pick and mix basis to users who can then run them on top of a generic base level of code. The base level of code consists of a microkernel setting underneath a layer of personality neutral services, which handles things like disk accesses. In distributed corporate environments, the microkernel technology allows different computing platforms running different operating systems to be connected. The microkernel runs underneath, enabling a virtual uniprocessor environment in which data servers work with any other machine.
Current operating system technology is moving toward increased use of microkernels. Microkernels implement most basic hardware specific functions in a small self-contained kernel. Operating system features or personalities are added as applications that use system services of the microkernel. In response to increasing demand for microkernel-aware debuggers, software designers are producing debuggers that provide seamless development environments that intuitively assure timely development and software compatibility. One such prior art debugger is SINGLESTEP marketed by Software Development Systems. The SINGLESTEP debugger offers a complete turn-key multitasking solution and tools environment. SINGLESTEP is an integrated package of program building, code generation, debugging and analysis tools that provide Windows functionality for a seamless development and debugging environment, full source-level simulation, fast access to all program objects, kernel awareness during debugging and integration with a C compiler. While offering a powerful solution for application debug, the SINGLESTEP solution is not capable of providing a personality neutral implementation of its microkernel and its services. The SINGLESTEP solution is capable of working only within the scope of a single personality.
It is desirable to have a personality neutral application debugger which is capable of gaining control of an application and obtaining information about the application's state without using interfaces that are peculiar to the personality.